package exo1;

public class Compte {
	//numéro de compte
	public int numeroDeCompte;
	
	//solde restant
	public double solde;
	
	public Personne proprietaire;
	
	//plancher de découvert
	public static final double decouvertMax=800;
	
	//credit minimal autorisé
	public static final double creditMin=100;
	
	//débit maximal autorisé
	public static final double debitMax=1000;
	
	public boolean compte;
	
	public Compte(int numeroDeCompte, double solde, Personne proprietaire){
		this.numeroDeCompte=numeroDeCompte;
		this.solde=solde;
		this.proprietaire=proprietaire;
		compte=true;
	}

	//Creer un compte
	public boolean creerCompte(){
		compte=true;
		return compte;
	}

	//Fermer un compte
	public boolean fermerCompte(){
		compte=false;
		return compte;
	}

	public int getNumeroDeCompte(){
		return numeroDeCompte;
	}

	public double getSolde(){
		return solde;
	}

	//return 0 si le compte n'est pas à découvert, la somme dû sinon
	public double decouvert(){
		if(solde>=0){
			return 0;
		}else{
			return -solde;
		}
	}

	//retirer de l'argent
	public void debiter(double somme){
			if(solde-somme>=0){
			solde=solde-somme;
			}
		else{
			System.out.println("Erreur");
		}
	}

	//ajouter de l'argent
	public void crediter(double somme){
		if(somme>0){
			solde=solde+somme;
		}
		else{
			System.out.println("Erreur");
		}
	}
	
	//virer de l'argent
	public void virer(double somme, Compte vers){
		if(debiter(somme)){
			vers.crediter(somme);
		}else{
			System.out.println("Erreur");
		}
	}

	@Override
	public String toString(){
		StringBuffer sb = new StringBuffer();
		sb.append("Compte n°").append(getNumeroDeCompte()).append(" ayant un solde de: ").append(getSolde());
		return sb.toString();
	}
}